package library.admin.domain.po;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;

import java.io.Serial;
import java.time.LocalDate;

import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDateTime;
import java.io.Serializable;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 图书实体类
 *
 * 
 *
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("books")
public class Book implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 图书唯一标识符，自增主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 图书标题，不能为空
     */
    private String title;

    /**
     * 作者姓名
     */
    private String author;

    /**
     * 国际标准书号，必须唯一
     */
    private String isbn;

    /**
     * 图书分类（如：小说、非小说等）
     */
    private String category;

    /**
     * 出版日期，可为空
     */
    private LocalDate publishedDate;
    
    /**
     * 图书封面URL
     */
    private String coverUrl;

    /**
     * 逻辑删除
     */
    private Boolean deleted;

    /**
     * 记录创建时间，默认设置为当前时间
     */
    private LocalDateTime createdAt;

    /**
     * 记录更新时间，自动更新为当前时间
     */
    private LocalDateTime updatedAt;
}
